<?php
require_once("configs/Chemins.class.php");


require_once(Chemins::LIBS . "Membre.class.php");
require_once(Chemins::LIBS . "Client.class.php");
require_once(Chemins::LIBS . "Produit.class.php");
require_once(Chemins::LIBS . "InputType.class.php");
require_once(Chemins::LIBS . "Form.class.php");
require_once(Chemins::LIBS . "News.class.php");
require_once(Chemins::LIBS . 'Panier.class.php');

require_once(Chemins::CONFIGS . "MySqlConfig.class.php");
require_once(Chemins::CONFIGS . "VariablesGlobales.class.php");
require_once(Chemins::MODELES . "ModelePDO.class.php");
require_once(Chemins::MODELES . "ModeleBoutique.class.php");
session_start();

// Affichage de l'entête
require_once(Chemins::VUES_PERMANENTES . "v_entete.php");
if((empty($_SESSION['login'])) and (empty($_SESSION['password']))){
    require_once(Chemins::VUES . "v_connexion.php");
}else{
    require_once(Chemins::VUES . "v_deconnexion.php");
}

// Affichage des Catégories
require_once(Chemins::CONTROLEURS . "ControleurCategories.class.php");
$controleurCategories = new ControleurCategories();
$controleurCategories->afficher();

    if (!isset($_REQUEST['controleur'])){
        unset($_SESSION['errors']);
        require_once(Chemins::CONTROLEURS . "ControleurNews.class.php");
        $controleurNews = new ControleurNews();
        $controleurNews->afficherTout();
    } else {
        $action = $_REQUEST['action']; // On recup l'action dans l'url
        unset($_SESSION['errors']);
        $classeControleur = 'Controleur' . $_REQUEST['controleur']; // On récup le nom du controleur qu'on utilise dans l'url
        $fichierControleur = $classeControleur . '.class.php';
        require_once(Chemins::CONTROLEURS . $fichierControleur);
        if (($_REQUEST['controleur'] === "Boutique")) {
            if ((isset($_REQUEST['categorie'])) and (isset($_REQUEST['souscategorie']))) { // On vérifie si on clique sur une sous-liste
                $cat = $_REQUEST['souscategorie'];
                $objetControleur = new $classeControleur();
                $objetControleur->$action($cat);
            } elseif (isset($_REQUEST['categorie'])) { // Sinon on a cliquer sur une liste
                $cat = $_REQUEST['categorie'];
                $objetControleur = new $classeControleur();
                $objetControleur->$action($cat);
            } elseif (($action === "afficherProduitsDuPanier")) {
                $objetControleur = new $classeControleur();
                $objetControleur->$action();
            } elseif (($action === "retirerProduit")) {
                $obj = $_REQUEST['produit'];
                $objetControleur = new $classeControleur();
                $objetControleur->$action($obj);
            } elseif (($action === "afficherTout")) {
                $objetControleur = new $classeControleur();
                $objetControleur->$action();
            } elseif (($action === "AjouterAuPanier")) {
                $objetControleur = new $classeControleur();
                $objetControleur->$action();
            }
        } elseif (($_REQUEST['controleur'] === "Connexion")) {
            if (($action === "seDeconnecter")) {
                $classeControleur = 'Controleur' . $_REQUEST['controleur']; // On récup le nom du controleur qu'on utilise dans l'url
                $fichierControleur = $classeControleur . '.class.php';
                require_once(Chemins::CONTROLEURS . $fichierControleur);
                $objetControleur = new $classeControleur();
                $objetControleur->$action();

                header('Location: index.php');
            } elseif (($action === "seConnecter")) {
                $login = $_POST['login'];
                $password = $_POST['password'];
                $objetControleur = new $classeControleur();
                if (($objetControleur->controlConnect($login, $password)) == false) {
                    unset($_SESSION['errors']);
                    $_SESSION['errors'][] = "Erreur, login ou password incorrect !";
                    header('Location: index.php');
                } else {
                    $admin = $objetControleur->isAdmin($login, $password);
                    $objetControleur->$action($login, $password, $admin);
                    unset($_SESSION['errors']);
                }
            }
        } elseif (($_REQUEST["controleur"] === "News")) {
            if ($action === "afficherTout") {
                $objetControleur = new $classeControleur();
                $objetControleur->$action();
            } elseif ($action === "afficher") {
                $idNews = $_REQUEST["news"];
                $objetControleur = new $classeControleur();
                $objetControleur->$action($idNews);
            }
        } elseif (($_REQUEST["controleur"] === "Paypal")){
            if ($action === "afficherRecap"){
                $objetControleur = new $classeControleur();
                $objetControleur->$action();
            }
        }else{
            $objetControleur = new $classeControleur(); // Nouvelle instance
            $objetControleur->$action(); // On execute l'action contenue dans l'url que l'on a récupéré plus tôt
        }

    }

require_once(Chemins::VUES_PERMANENTES . "v_footer.php");
?>